package ar.com.psicosoft.model.psicosoft;

import java.io.Serializable;

import javax.persistence.*;

import java.sql.Timestamp;
import java.util.List;

/**
 * The persistent class for the medicacion_paciente database table.
 * 
 */
@Entity
@Table(name = "medicacion_paciente", schema = "psicosoft")
@NamedQuery(name = "MedicacionPaciente.findAll", query = "SELECT m FROM MedicacionPaciente m")
public class MedicacionPaciente implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@SequenceGenerator(name = "sec_medicacion_paciente", sequenceName = "psicosoft.sec_medicacion_paciente")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sec_medicacion_paciente")
	@Column(name = "\"idMedicacionPaciente\"", unique = true, nullable = false)
	private Integer idMedicacionPaciente;

	@Column(length = 40)
	private String especialista;

	private Timestamp fecha;

	@Column(name = "\"idPersona\"")
	private Integer idPersona;

	@Column(length = 2147483647)
	private String observacion;

	// bi-directional many-to-one association to Paciente
	@ManyToOne
	@JoinColumn(name = "\"idPersona\"", nullable = false, insertable = false, updatable = false)
	private Paciente paciente;

	// bi-directional many-to-one association to MedicamentoPaciente
	@OneToMany(mappedBy = "medicacionPaciente", targetEntity = MedicamentoPaciente.class)
	private List<MedicamentoPaciente> medicamentoPacientes;

	public MedicacionPaciente() {
	}

	public Integer getIdMedicacionPaciente() {
		return this.idMedicacionPaciente;
	}

	public void setIdMedicacionPaciente(Integer idMedicacionPaciente) {
		this.idMedicacionPaciente = idMedicacionPaciente;
	}

	public String getEspecialista() {
		return this.especialista;
	}

	public void setEspecialista(String especialista) {
		this.especialista = especialista;
	}

	public Timestamp getFecha() {
		return this.fecha;
	}

	public void setFecha(Timestamp fecha) {
		this.fecha = fecha;
	}

	public Integer getIdPersona() {
		return this.idPersona;
	}

	public void setIdPersona(Integer idPersona) {
		this.idPersona = idPersona;
	}

	public String getObservacion() {
		return this.observacion;
	}

	public void setObservacion(String observacion) {
		this.observacion = observacion;
	}

	public Paciente getPaciente() {
		return this.paciente;
	}

	public void setPaciente(Paciente paciente) {
		this.paciente = paciente;
	}

	public List<MedicamentoPaciente> getMedicamentoPacientes() {
		return this.medicamentoPacientes;
	}

	public void setMedicamentoPacientes(
			List<MedicamentoPaciente> medicamentoPacientes) {
		this.medicamentoPacientes = medicamentoPacientes;
	}

	public MedicamentoPaciente addMedicamentoPaciente(
			MedicamentoPaciente medicamentoPaciente) {
		getMedicamentoPacientes().add(medicamentoPaciente);
		medicamentoPaciente.setMedicacionPaciente(this);

		return medicamentoPaciente;
	}

	public MedicamentoPaciente removeMedicamentoPaciente(
			MedicamentoPaciente medicamentoPaciente) {
		getMedicamentoPacientes().remove(medicamentoPaciente);
		medicamentoPaciente.setMedicacionPaciente(null);

		return medicamentoPaciente;
	}

}